1. Field of the Invention
The invention relates generally to database systems and systems for filing data, and particularly to testing the data linking that controls access to linked files that are stored in a file system that is external to the database system.
2. Description of the Related Art
Generally, a file system is used to xe2x80x9cfile awayxe2x80x9d information which a user will later retrieve for processing. With reference to H. M. Deitel, OPERATING SYSTEMS (Second Edition, 1990), Chapter 13, a file system provides a user with the ability to create a file that is xe2x80x9ca named collection of dataxe2x80x9d. Normally, a file resides in directly accessible storage and may be manipulated as a unit by file system operations. As Deitel teaches, a file system affords a user the means for accessing data stored in files, the means for managing files, the means for managing direct access storage space where files are kept, and the means for guaranteeing the integrity of files. As is known, there is a class of applications where large data objects such as digitized movies, digitized images, digitized video, and computer-generated graphics are typically captured, processed, and stored in file systems.
With reference to the IEEE Mass Storage Systems Reference Model Version 4, May 1990, developed by the IEEE Technical Committee on Mass Storage Systems and Technology, a Mass Storage System is used to store and administer data objects known as xe2x80x9cbitfilesxe2x80x9d. A bitfile is an uninterpreted sequence of bits, of arbitrary length, possessing attributes relating to unique identification, ownership, and other properties of the data present in the bitfile, such as its length, time of creation, and a description of its nature. A Mass Storage System is able to administer a hierarchy of storage devices for the storage of bitfiles to provide cost effective storage.
When used herein, a system for filing data (also, xe2x80x9ca filing systemxe2x80x9d) encompasses file systems and mass storage systems as defined above. The term xe2x80x9cfilexe2x80x9d is hereafter used to denote data stored in a filing system.
C. J. Date, in AN INTRODUCTION TO DATABASE SYSTEMS (Sixth Edition, 1995), Chapter 1, defines a database system as xe2x80x9cbasically a computerized record-keeping system . . . xe2x80x9d. The contents of a database system (records) are defined, organized, and accessed according to some scheme such as the well-known relational model.
A file management component of a file system normally operates at a level above an operating system. Access to the contents of the file system requires knowledge of at least the identity of a file. A database system, on the other hand, operates at a level above a file management system. Indeed, as Date points out, a database management system (DBMS) component of a database system typically operates on top of a file management system (xe2x80x9cfile managerxe2x80x9d).
According to Date, while the user of a file system may enjoy the ability to create, retrieve, update, and destroy files, it is not aware of the internal structure of the file and, therefore, cannot provide access to them in response to requests that presume knowledge of such structure. In this regard, if the file system stores movies, the system would be able to locate and retrieve a file in which a digitized version of xe2x80x9cThe Battleship Potemkinxe2x80x9d is stored, but would not be able to respond to a request to return the titles of all Russian-language movies directed by Sergei Eisenstein, which is well within the ability of a database system.
Accordingly, a database system can be used to index and provide access to large objects in a file system (such as files that contain digitized versions of Russian-language movies). However, in order to provide access to files containing the large objects, the DBMS must possess the facilities to store indexed information of which the objects are composed. Manifestly, such functions would waste the resources of a general purpose database system set up to store, access, and retrieve relatively short objects such as records. Moreover, the raw content of a large object captured in a file system may be so vast as to be impractical to structure for a database request.
To overcome this difficulty, features of such an object (such as a digitized image) would be extracted from the file, formatted according to the database system structure, and then used by the database system to support the search of stored objects based on the extracted features.
This extraction of features of the object into the database creates a serious problem when one wishes to test the database since the integrity of the file in the file system is not fully within the control of the database and may be altered or even deleted by other users of the file system. Accordingly, random testing of the database which uses file links could well result in an indication that the database is inoperative when, in fact, it is in good operating condition.
The present invention overcomes this problem by maintaining a control table in the database that is updated by the file server and thereby kept current of conditions within the file system on the file server. A data link file control tool in the file server keeps the control table current and sets the file extension for any externally referenced files used in the testing process so as to maintain the integrity of the test files.
Further, the invention enables external file references to be randomly tested in a controlled manner even when the database server and the external file reference or data links manager may be, and usually are, on different machines. The invention is scalable in that it can be used with any size of files or database and any number of separate databases or file servers. The invention is also easy to use since it uses the normal functionality of the database without the need for writing separate protocols or establishing separate communication means.
A primary object of the invention is to enable testing of a database system to determine the ability of the system to handle queries which require access to files external to the database.
A further object of the invention is to create a test system for a complex database system which may include multiple file systems wherein test files are created in the file systems and a control table in the database management system controls access to the test files by the database system.
A further object of the invention is to provide means in the file server to maintain the control table in the database management system current.
A further object of the invention is to enable testing of the database system and, in particular, its data linking function, while only minimally interfering with the regular operation of the database system.
A further object of the invention is to enable the multiple users to test the database system concurrently.
The invention provides a process for testing a database management system which includes a database management system and at least one file system external to the database system where the database system can reference files in the file system by an external file reference, the testing process including the step of creating a control table within the database management system which contains file linking information for all externally referenced files which may be used during the test process, the step of creating and deleting test files on the file system at least some of which are accessed through an external file reference, the step of generating maintenance information for the control table at the file system and communicating the maintenance information to the control table from the file system and the step of testing the database system by randomly accessing the test file.
The invention further provides a system for testing a database system which includes a database management system and at least one file system having at least one file server, the system for testing including a control table having data link values for all files that may be used during testing within the database management system, a file control tool within the file server for creating and deleting test files and randomly linking test files, the tool including means for maintaining information in the control table current, whereby the test system may randomly access the test files through the control tool and maintain a current record of the test file in the control table.